/**
 * @author taowei20061122@163.com
 *
 * 2013-5-1 下午10:36:01
 */
package study.designpattern.singleton;

import com.sun.org.apache.bcel.internal.generic.NEW;

/**
 * 一种更好的单例实现方式
 * 
 * @author taowei20061122@163.com
 *
 * 2013-5-1 下午10:36:01
 */
public class BestSingleton {
	/**
	 * 类级的内部类，也就是静态的成员式内部类，该内部类的实例与外部类的实例没有绑定关系，
	 * 而且只有被调用到时才会装载，从而实现了延迟加载
	 *  
	 * @author taowei20061122@163.com
	 *
	 * 2013-5-1 下午10:39:08
	 */
	private static class SingletonHolder {
		/**
		 * 静态初始化器，由JVM来保证线程安全
		 */
		private static BestSingleton instance = new BestSingleton();
	}
	
	private BestSingleton() {
	}
	
	public static BestSingleton getInstance() {
		return SingletonHolder.instance;
	}
}
